Windows でリモートスクリプトを実行する (その1)

Kompira Enterprise は Linux などの ssh 接続できるもの以外に、Windows に対するアクセスもサポートしています。
今回の記事では Kompira Enterprise の「リモートスクリプト」を利用して、Windows サーバーでバッチファイルを実行する方法をご紹介します。


環境情報

ソフトウェア バージョン
Kompira Enterprise 1.5.5.post11
OS CentOS  7.8.2003
Windows 10 21H1
Windows Server 2019 (バージョン1809)
WinRM 3.0

または

ソフトウェア バージョン
Kompira Enterprise 1.6.2.post4
OS CentOS  7.8.2003
Windows Server 21H1
Windows Server 2019 (バージョン1809)
WinRM 3.0

Windows 側での設定

Kompira Enterprise から Windows 機への接続は WinRM / WinRS を利用して接続します。Windows Server では通常、デフォルトで必要な設定が行われておりますが、必要に応じて設定を行ってください。

まず、「Windows PowerShell」を右クリックして「管理者として実行」をクリックしてください。

次に、以下のように「winrm qc」コマンドを実行してください。

C:\Users\Administrator> winrm qc
WinRM サービスは、既にこのコンピューターで実行されています。
WinRM は、管理用にこのコンピューターへのリモート アクセスを許可するように設定されていません。
次の変更を行う必要があります:

ローカル ユーザーにリモートで管理権限を付与するよう LocalAccountTokenFilterPolicy を構成してください。

変更しますか [y/n]? y

WinRM はリモート管理用に更新されました。

ローカル ユーザーにリモートで管理権限を付与するよう LocalAccountTokenFilterPolicy を構成しました。

また、ファイヤーウォールなどで通信を管理している場合にはポート5985番にリクエストを行えるように設定してください。

続いて、Kompira Enterprise から WinRM 経由でアクセスできるよう、暗号化していない認証を許可します。
同様に PowerShell の画面から次のコマンドを実行してください。

winrm set winrm/config/service '@{AllowUnencrypted="true"}'

ここまでで、Windows 側の設定は完了です。

Kompira Enterprise 側の設定

実行するスクリプトを記述する「スクリプトジョブ」オブジェクトと、これを実行するサーバーを指定する「ノード情報」オブジェクト、「アカウント情報」オブジェクトを作成します。

まず「アカウント情報」ですが、ここでは「AccountOnWindows」という名前で以下のように作成しました。
Windows 機で作成したアカウントのユーザー名とパスワードを入力してください。

次に「ノード情報」ですが、ここでは「WindowsServer」という名称で作成しました。Windows サーバーの IP アドレスを記載し、「ポート番号」は「5985」、「接続種別」は「winrs」を選択してください。一番下の「アカウント」は先に作成した「AccountOnWindows」を選択します。

※ Kompira Enterprise 1.5 系ではポート番号の指定は不要です。

最後に「スクリプトジョブ」ですが、ここでは「Win機でバッチファイルの実行」という名前で作成しました。以下のように指定した引数等を表示させます。

Win機でバッチファイルの実行

@echo off

echo Kompira Enterprise から実行しています。
echo 引数は %1 %2 %3 %4 です
echo ユーザーは %USERNAME% です。
echo ホスト名は %COMPUTERNAME% です。

Windows でバッチファイルを実行させる場合拡張子を設定する必要があるので、「拡張子」の欄に「bat」と入力してください。

スクリプトジョブの実行

実行画面で「実行ノード」と「実行アカウント」に、先に作成したノード情報とアカウント情報を指定します。引数は「hello」として実行します。

実行結果は以下のようになります。

※ Kompira Enterprise 1.5 系では [EXIT STATUS] 以降のみが表示されます。

本稿では、Windows に対してスクリプトジョブを実行できるところまでを扱いました。

リモートサーバーに直接バッチファイルなどを配置するとバッチファイルそのもののメンテナンスが大変ですが、本稿のようにすれば、Kompira Enterprise 側でバッチファイルを管理して、複数のサーバーに同じ処理を実行させることが可能になります。

TOP